package com.glela.order.service;

import java.util.List;

import com.glela.order.model.OrderObject;
import com.glela.order.model.PayTypeConfig;
import com.glela.order.model.response.OrderObjectVo;
import com.glela.platform.model.request.ReqHeaderVo;
import com.glela.platform.model.request.RequestPageBaseModel;
import com.glela.platform.model.response.ResponseUser;

public interface OrderObjectService {

	/**
	 * 查询待支付订单
	 * 
	 * @param orderInfoVo
	 * @return
	 */
	public List<OrderObjectVo> listOrderObjectDaiZhiFuByUserId(long userId, int page, int pageSize);

	/**
	 * 查询待支付订单详情
	 * 
	 * @param orderInfoVo
	 * @param clientType ： 张云飞添加, 区分客户端类型，返回对应的支付方式列表
	 * @return
	 */
	public OrderObjectVo getOrderObjectEntityByOrderSn(String clientType,String orderSn,long userId);
	/**
	* @Description: 查询待支付订单详情(新)
	* @Param: clientType  用于区分客户端类型，返回对应的支付方式列表。
	* @author zhangrenjie
	* @date 2017/9/1 16:43
	* @version V1.0
	*/
	public OrderObjectVo getOrderObjectEntityByOrderSnNew(RequestPageBaseModel reqModel);

	public OrderObjectVo getOrderObjectEntityByOrderSnTwo(String orderSn);

	public List<PayTypeConfig> selectPayTypeConfigByStatus(Integer status);
	
	public List<String> selectOrderObjectHandleStatus();

	/**
	 * <dl>
	 * <dt>订单可支付类型</dt>
	 * <dd>按平台类型</dd>
	 * </dl>
	 * @param phoneType 平台类型
	 * @param isTearcher 是否是讲师
	 * @return List<PayTypeConfig>
	 * @author zls
	 * @date 2017年9月1日 下午3:02:44
	 */
	List<PayTypeConfig> queryOrderPayType(String phoneType, boolean isTearcher);

	List<PayTypeConfig> queryOrderPayType(ReqHeaderVo reqHeader, ResponseUser payUser);

	List<PayTypeConfig> queryOrderPayType(boolean openStoreOrder, ReqHeaderVo reqHeader, ResponseUser payUser);
	
	public OrderObject selectOrderObjectByOrderSn(String orderSn);
	
	/***
	 * 
	 * @param paySn : 支付单号
	 * @return 返回该支付单号  对应的订单是不是开店单  TRUE : 是  FALSE : 否  ， 默认：FALSE
	 */
	public boolean isOpenStoreOrder(String paySn);
}
